/* Various Thresholds of MPFR, not exported.  -*- mode: C -*-

Copyright 2005-2021 Free Software Foundation, Inc.

This file is part of the GNU MPFR Library.

The GNU MPFR Library is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 3 of the License, or (at your
option) any later version.

The GNU MPFR Library is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
License for more details.

You should have received a copy of the GNU Lesser General Public License
along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
https://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */

/* Generated by MPFR's tuneup.c, 2018-02-22, gcc 7.3.0 */
/* calva.loria.fr ARMv7 Processor rev 5 (v7l) with gmp-6.1.2,
   which defines -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 */

#define MPFR_MULHIGH_TAB  \
 -1,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,0, \
 0,0,13,14,13,14,17,16,16,17,19,19,20,20,23,23, \
 24,25,23,24,25,26,25,26,29,28,29,29,31,32,32,34, \
 29,35,31,32,32,32,32,34,35,38,37,38,40,38,38,40, \
 40,40,40,40,46,46,46,52,46,46,52,51,52,50,52,51, \
 52,51,52,52,56,52,58,58,58,58,64,64,58,62,64,64, \
 64,64,64,63,64,64,68,88,64,68,70,70,80,70,76,80, \
 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80, \
 92,92,92,92,92,92,92,92,92,92,104,104,104,104,100,104, \
 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,116, \
 104,116,116,104,116,116,116,116,116,116,116,116,116,116,116,116, \
 112,128,116,128,128,128,128,128,135,116,128,127,128,128,127,128, \
 128,153,124,128,128,135,128,128,128,153,147,153,153,135,128,153, \
 153,153,153,138,135,135,153,153,153,153,150,153,152,152,150,153, \
 153,153,152,153,152,153,152,153,153,153,152,152,153,153,170,171, \
 171,165,170,170,171,170,170,171,168,171,171,171,170,171,170,171, \
 170,171,171,170,168,189,186,189,170,189,189,189,189,189,189,189, \
 189,189,188,189,188,189,189,189,189,189,189,189,189,189,189,204, \
 204,204,204,204,204,204,204,204,204,204,204,204,228,228,228,228, \
 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228, \
 228,228,228,228,228,228,228,228,228,228,228,252,252,252,252,252, \
 252,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \
 252,252,252,251,252,252,252,252,252,252,251,252,252,252,252,252, \
 252,252,252,252,252,252,252,252,252,252,252,252,276,252,276,276, \
 276,276,275,252,276,276,276,276,276,276,276,276,316,276,276,316, \
 316,316,316,316,316,316,316,316,316,315,316,316,316,316,316,316, \
 316,316,316,315,316,316,316,315,316,316,315,316,316,316,316,316, \
 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \
 316,316,316,316,316,364,316,316,364,364,363,364,364,364,364,364, \
 364,364,364,363,364,364,364,364,364,364,364,364,364,364,364,364, \
 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \
 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \
 364,364,364,364,364,364,364,364,364,364,364,412,412,412,412,412, \
 412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412, \
 412,412,412,412,412,412,412,412,412,412,411,412,412,412,411,412, \
 412,412,412,412,412,412,412,412,412,474,412,474,474,474,474,474, \
 474,473,474,474,474,474,474,474,473,474,474,474,474,474,473,474, \
 474,474,474,474,474,474,473,474,474,474,474,474,474,474,474,474, \
 474,474,473,474,474,474,474,474,473,474,474,474,474,474,474,474, \
 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \
 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,474, \
 474,474,504,474,474,504,474,474,474,474,474,504,504,474,474,504, \
 504,504,504,504,504,504,504,504,504,504,504,504,504,504,536,504, \
 552,552,504,552,504,552,552,552,552,552,552,552,552,552,552,552, \
 552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, \
 552,552,552,552,552,552,552,632,631,631,632,631,632,632,630,631, \
 632,632,631,631,632,632,631,632,632,631,632,632,632,632,632,632, \
 632,631,632,632,632,632,632,632,632,632,632,632,632,631,632,632, \
 632,632,632,632,632,631,631,632,632,632,632,632,632,632,632,632, \
 632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
 632,632,632,632,632,631,632,632,632,632,632,632,632,632,632,632, \
 631,632,632,631,632,632,632,632,632,630,631,632,632,631,632,632, \
 632,632,632,631,632,631,632,632,632,632,632,728,728,631,632,728, \
 728,727,728,728,728,727,728,727,728,727,728,728,728,728,728,728, \
 728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
 728,728,728,728,728,727,728,728,728,727,728,728,728,727,728,728, \
 728,727,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
 728,727,726,727,728,728,728,728,728,727,728,728,728,727,728,728, \
 728,728,728,728,728,728,728,728,728,727,728,728,728,727,728,728, \
 728,728,728,728,728,726,728,728,728,824,728,728,727,824,824,728, \
 824,824,728,824,824,728,824,824,728,824,824,728,824,824,824,824, \
 824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \
 824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, \
 824,824,824,824,824,824,823,824,824,824,824,824,824,823,824,824 \

#define MPFR_SQRHIGH_TAB  \
 -1,0,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, \
 12,12,11,12,12,14,15,16,16,16,18,16,20,18,20,20, \
 21,20,20,24,22,24,24,25,26,28,28,25,25,27,27,28, \
 29,27,28,29,29,28,29,29,31,31,32,33,33,35,35,36, \
 37,34,35,36,37,36,39,40,41,42,41,40,42,41,42,44, \
 44,42,44,44,45,44,48,48,49,50,48,52,56,56,52,52, \
 56,52,56,56,60,56,56,64,64,60,60,64,68,64,68,64, \
 68,64,68,68,72,72,72,72,68,72,76,74,72,72,72,80, \
 72,72,72,72,70,72,72,74,74,80,76,80,78,80,80,84, \
 80,84,84,88,84,88,88,90,88,84,92,80,88,88,88,84, \
 84,92,88,88,88,88,88,88,88,88,96,96,92,92,112,96, \
 96,92,92,96,104,104,112,104,104,112,112,112,104,104,104,112, \
 112,112,112,112,112,112,112,120,120,112,120,112,120,120,120,112, \
 128,120,120,128,128,112,128,120,120,120,120,128,120,128,128,128, \
 128,128,128,136,128,128,136,136,136,136,136,136,136,136,144,144, \
 136,144,144,128,144,144,144,128,144,144,136,144,144,136,136,144, \
 144,144,144,144,144,144,144,144,144,144,144,144,144,152,144,152, \
 152,144,144,144,160,160,144,160,160,160,160,160,160,160,160,160, \
 160,160,160,160,160,177,177,160,160,160,160,160,160,160,177,160, \
 160,160,160,160,177,177,177,160,177,177,177,201,177,201,177,201, \
 201,177,201,201,201,201,201,177,201,201,201,201,201,201,201,201, \
 201,201,201,207,201,201,201,200,201,201,201,201,201,201,201,201, \
 201,201,213,201,213,213,213,213,213,213,213,213,213,213,218,218, \
 218,219,213,213,213,213,219,213,225,213,218,219,225,219,237,218, \
 237,237,237,237,237,237,237,237,237,237,237,237,224,237,249,237, \
 237,249,237,237,249,243,237,237,243,243,237,249,249,249,249,248, \
 249,249,249,237,249,249,261,249,249,260,261,248,249,249,261,261, \
 261,261,261,273,261,249,249,260,261,273,261,261,261,273,284,284, \
 273,284,261,284,273,261,292,273,284,292,291,292,292,292,292,284, \
 292,292,292,284,291,292,284,292,292,284,292,284,284,292,292,284, \
 284,292,284,291,292,308,291,292,292,292,292,284,284,284,284,316, \
 292,292,316,284,308,292,292,284,300,316,292,292,316,292,300,316, \
 316,316,291,292,292,292,291,292,316,292,308,308,300,316,316,332, \
 292,300,316,316,316,316,316,316,332,308,324,316,316,316,332,316, \
 316,316,332,316,332,316,332,324,316,324,332,332,332,332,332,332, \
 332,332,332,332,332,332,324,316,332,348,324,332,348,348,348,348, \
 332,348,332,332,348,348,332,332,348,332,348,364,364,332,348,364, \
 348,364,348,348,348,364,348,348,364,348,348,364,364,348,364,364, \
 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,372, \
 380,364,380,372,380,364,379,380,364,364,364,380,364,380,402,380, \
 364,372,364,380,372,380,402,380,402,402,402,402,402,402,426,402, \
 402,426,402,402,402,438,426,438,426,426,426,438,426,438,426,438, \
 426,426,426,426,426,426,438,426,426,426,438,426,438,438,438,438, \
 438,438,438,426,426,438,438,438,426,426,426,438,426,426,426,438, \
 426,426,438,438,426,438,438,438,438,438,474,450,438,474,474,450, \
 474,474,474,474,474,474,474,474,474,450,474,474,474,474,450,474, \
 486,474,498,474,473,474,474,474,474,474,474,474,498,474,474,498, \
 473,474,474,438,474,474,474,498,450,474,474,498,450,498,498,498, \
 522,498,498,474,522,498,498,498,498,498,474,522,474,498,474,498, \
 474,474,474,474,474,522,474,474,474,522,522,522,474,522,522,522, \
 522,522,498,522,522,498,498,498,498,522,498,498,498,498,498,498, \
 522,498,498,498,498,498,498,498,498,522,546,522,522,522,522,522, \
 522,522,522,546,522,522,522,522,522,546,522,522,522,522,522,522, \
 546,546,522,522,546,546,546,546,546,546,546,522,546,546,546,546, \
 546,546,546,546,546,546,545,546,546,546,546,546,568,558,546,568, \
 546,568,568,546,546,546,546,546,546,546,546,568,546,546,546,545, \
 546,584,584,584,546,584,546,584,568,546,568,584,584,568,584,568, \
 584,584,600,568,584,600,568,584,568,568,584,600,600,600,600,584, \
 600,600,616,584,600,616,632,616,584,616,616,632,632,616,632,632, \
 632,631,632,632,632,632,632,632,632,632,632,632,632,632,632,632, \
 632,632,632,632,632,632,632,632,632,632,632,632,664,632,632,632, \
 632,664,664,632,632,664,632,664,664,632,664,664,664,632,664,632, \
 632,664,631,664,632,664,664,664,664,664,664,664,664,664,664,664, \
 664,664,664,664,664,664,664,664,696,664,696,696,664,696,696,664 \

#define MPFR_DIVHIGH_TAB  \
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \
 0,0,0,0,0,0,0,0,0,42,41,44,44,45,45,45, /*64-79*/ \
 44,44,49,47,47,46,47,46,52,52,52,51,52,52,52,52, /*80-95*/ \
 53,51,52,59,58,52,59,64,58,59,62,68,62,57,64,59, /*96-111*/ \
 64,59,68,68,70,68,70,70,68,64,70,70,66,64,66,70, /*112-127*/ \
 76,67,69,72,70,70,80,80,71,88,76,80,80,76,80,80, /*128-143*/ \
 80,88,88,90,92,92,92,90,88,84,92,80,88,80,92,92, /*144-159*/ \
 92,92,92,88,88,90,90,92,92,92,95,94,94,92,92,94, /*160-175*/ \
 96,104,94,92,92,92,95,102,104,104,103,104,104,104,104,104, /*176-191*/ \
 104,104,104,100,104,104,104,104,104,104,104,103,104,112,108,112, /*192-207*/ \
 116,116,116,128,116,128,116,128,116,128,128,128,116,128,128,128, /*208-223*/ \
 127,128,128,128,128,128,128,136,128,128,136,128,128,140,128,128, /*224-239*/ \
 128,140,128,136,128,128,128,128,128,139,128,136,136,138,140,140, /*240-255*/ \
 136,136,140,140,140,140,140,138,144,140,136,140,148,142,139,160, /*256-271*/ \
 160,140,160,158,160,160,160,148,160,160,160,160,160,160,160,160, /*272-287*/ \
 160,160,152,160,160,160,176,176,160,160,176,160,160,168,160,184, /*288-303*/ \
 160,160,184,160,160,176,160,160,176,184,184,184,160,184,184,183, /*304-319*/ \
 176,184,184,182,184,184,184,184,182,184,184,184,176,208,184,184, /*320-335*/ \
 192,184,184,184,184,184,184,184,208,184,184,184,208,208,184,184, /*336-351*/ \
 208,208,184,208,208,208,208,208,208,200,208,184,208,208,208,208, /*352-367*/ \
 208,208,208,208,208,208,208,208,208,208,208,208,208,204,208,208, /*368-383*/ \
 208,208,208,207,208,208,206,208,208,208,208,206,208,208,208,208, /*384-399*/ \
 208,208,206,208,208,208,208,208,208,208,208,208,208,208,224,224, /*400-415*/ \
 224,224,224,231,232,256,256,224,256,232,232,232,256,256,232,224, /*416-431*/ \
 232,256,256,224,232,228,224,256,232,256,256,232,256,256,256,256, /*432-447*/ \
 256,256,256,232,256,230,256,256,256,256,256,256,256,256,256,256, /*448-463*/ \
 256,248,256,256,256,252,256,256,256,256,255,256,254,256,256,256, /*464-479*/ \
 256,256,256,255,256,256,256,256,256,256,256,256,256,248,256,256, /*480-495*/ \
 256,256,256,256,256,256,256,256,256,256,256,256,256,270,280,272, /*496-511*/ \
 272,280,270,268,280,288,288,288,288,292,280,276,288,270,280,304, /*512-527*/ \
 288,304,288,280,280,279,304,280,280,280,280,304,296,280,280,282, /*528-543*/ \
 304,320,279,320,288,304,304,288,320,304,320,316,320,304,320,304, /*544-559*/ \
 288,304,304,304,320,304,320,320,320,304,304,304,320,318,296,304, /*560-575*/ \
 320,320,318,320,318,304,304,320,304,304,320,304,304,304,304,320, /*576-591*/ \
 320,320,320,318,320,320,320,318,352,320,320,320,318,352,320,352, /*592-607*/ \
 320,320,320,320,320,336,368,336,368,320,320,368,352,352,368,368, /*608-623*/ \
 366,320,342,368,320,368,352,350,352,352,320,364,352,366,352,366, /*624-639*/ \
 368,367,366,360,364,368,368,366,368,368,368,368,368,366,368,378, /*640-655*/ \
 352,376,368,368,352,364,352,368,352,366,366,352,368,384,368,368, /*656-671*/ \
 364,366,364,367,368,367,368,368,376,368,368,368,368,367,368,376, /*672-687*/ \
 366,364,366,366,368,366,368,368,368,368,384,416,384,376,416,368, /*688-703*/ \
 376,378,368,366,368,368,384,368,366,416,368,368,416,376,368,367, /*704-719*/ \
 368,384,416,416,368,416,416,416,416,416,416,416,384,384,408,416, /*720-735*/ \
 416,416,376,408,408,416,416,408,408,416,416,416,378,416,416,416, /*736-751*/ \
 416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,400, /*752-767*/ \
 416,416,416,416,416,416,416,416,408,416,416,416,416,416,408,416, /*768-783*/ \
 416,416,416,416,416,416,416,416,416,416,416,416,416,416,416,416, /*784-799*/ \
 448,416,416,416,416,448,416,456,416,416,416,448,416,416,416,416, /*800-815*/ \
 416,448,416,448,416,416,416,416,416,416,416,448,456,416,448,464, /*816-831*/ \
 456,448,512,448,464,462,464,464,464,448,448,464,448,448,464,448, /*832-847*/ \
 448,448,464,480,512,448,448,448,464,512,448,448,448,456,456,456, /*848-863*/ \
 512,512,464,464,456,464,464,512,512,512,512,464,512,512,512,512, /*864-879*/ \
 512,512,512,512,512,512,512,512,512,512,512,512,456,512,512,454, /*880-895*/ \
 512,512,456,511,464,512,504,504,504,512,512,504,512,464,512,512, /*896-911*/ \
 512,512,512,512,464,512,512,512,512,512,512,464,512,512,512,512, /*912-927*/ \
 504,512,510,512,512,512,512,512,512,512,512,512,512,512,512,512, /*928-943*/ \
 512,512,512,512,512,504,504,512,512,512,512,512,504,512,512,512, /*944-959*/ \
 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*960-975*/ \
 512,512,512,512,512,511,512,512,512,512,512,512,504,512,512,511, /*976-991*/ \
 511,512,512,511,512,512,512,512,512,512,512,512,512,511,512,512, /*992-1007*/ \
 512,512,512,512,512,512,512,512,512,512,512,512,512,536,544,544 /*1008-1023*/ \

#define MPFR_MUL_THRESHOLD 22 /* limbs */
#define MPFR_SQR_THRESHOLD 24 /* limbs */
#define MPFR_DIV_THRESHOLD 3 /* limbs */
#define MPFR_EXP_2_THRESHOLD 277 /* bits */
#define MPFR_EXP_THRESHOLD 10666 /* bits */
#define MPFR_SINCOS_THRESHOLD 28990 /* bits */
#define MPFR_AI_THRESHOLD1 -28503 /* threshold for negative input of mpfr_ai */
#define MPFR_AI_THRESHOLD2 2972
#define MPFR_AI_THRESHOLD3 44718
/* Tuneup completed successfully, took 3001 seconds */
